package spoon.core.domain;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import spoon.core.annotation.DomainInfo;

public class Game implements Serializable {

	private static final long serialVersionUID = 1L;

	@DomainInfo("순차번호")
	private BigInteger seq;

	@DomainInfo("사이트 코드")
	private String site;
	@DomainInfo("사이트 주소")
	private String url;

	@DomainInfo(value = "게임 아이디", descr = "입력 및 삭제시 필요")
	private String gameId;
	@DomainInfo("경기시간")
	private Date gameDate;

	@DomainInfo("종목 코드")
	private String itemCode;
	@DomainInfo("종목명")
	private String itemName;

	@DomainInfo("국가")
	private String nation;

	@DomainInfo("리그 코드")
	private String leagueCode;
	@DomainInfo("리그명")
	private String leagueName;

	@DomainInfo("홈팀 코드")
	private String homeTeamCode;
	@DomainInfo("홈팀명")
	private String homeTeamName;
	@DomainInfo("원정팀 코드")
	private String awayTeamCode;
	@DomainInfo("원정팀명")
	private String awayTeamName;

	@DomainInfo(value = "베팅대상", descr = "score, foul, card, corner etc..")
	private String betTarget;
	@DomainInfo(value = "경기시간", descr = "Full Time, Half Time, Over Time etc..")
	private String betTime;
	@DomainInfo(value = "베팅유형", descr = "1X2, Over Under, Handicap, Double Chance, Drow No Bet etc..")
	private String betType;
	@DomainInfo("베팅명")
	private String betName;

	@DomainInfo("핸디캡")
	private Double handicap;
	@DomainInfo("핸디캡명")
	private String handicapName;

	@DomainInfo("배당")
	private Double betRate;
	@DomainInfo("핸디캡명")
	private String betRateName;
	@DomainInfo("핸디캡코드")
	private String betRateCode;

	@DomainInfo("등록일")
	private Date regDate;

	private String link;
	private List<Game> gameList = new ArrayList<Game>();

	public BigInteger getSeq() {
		return seq;
	}

	public void setSeq(BigInteger seq) {
		this.seq = seq;
	}

	public String getSite() {
		return site;
	}

	public void setSite(String site) {
		this.site = site;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getGameId() {
		return gameId;
	}

	public void setGameId(String gameId) {
		this.gameId = gameId;
	}

	public Date getGameDate() {
		return gameDate;
	}

	public void setGameDate(Date gameDate) {
		this.gameDate = gameDate;
	}

	public String getItemCode() {
		return itemCode;
	}

	public void setItemCode(String itemCode) {
		this.itemCode = itemCode;
	}

	public String getItemName() {
		return itemName;
	}

	public void setItemName(String itemName) {
		this.itemName = itemName;
	}

	public String getNation() {
		return nation;
	}

	public void setNation(String nation) {
		this.nation = nation;
	}

	public String getLeagueCode() {
		return leagueCode;
	}

	public void setLeagueCode(String leagueCode) {
		this.leagueCode = leagueCode;
	}

	public String getLeagueName() {
		return leagueName;
	}

	public void setLeagueName(String leagueName) {
		this.leagueName = leagueName;
	}

	public String getHomeTeamCode() {
		return homeTeamCode;
	}

	public void setHomeTeamCode(String homeTeamCode) {
		this.homeTeamCode = homeTeamCode;
	}

	public String getHomeTeamName() {
		return homeTeamName;
	}

	public void setHomeTeamName(String homeTeamName) {
		this.homeTeamName = homeTeamName;
	}

	public String getAwayTeamCode() {
		return awayTeamCode;
	}

	public void setAwayTeamCode(String awayTeamCode) {
		this.awayTeamCode = awayTeamCode;
	}

	public String getAwayTeamName() {
		return awayTeamName;
	}

	public void setAwayTeamName(String awayTeamName) {
		this.awayTeamName = awayTeamName;
	}

	public String getBetTarget() {
		return betTarget;
	}

	public void setBetTarget(String betTarget) {
		this.betTarget = betTarget;
	}

	public String getBetTime() {
		return betTime;
	}

	public void setBetTime(String betTime) {
		this.betTime = betTime;
	}

	public String getBetType() {
		return betType;
	}

	public void setBetType(String betType) {
		this.betType = betType;
	}

	public String getBetName() {
		return betName;
	}

	public void setBetName(String betName) {
		this.betName = betName;
	}

	public Double getHandicap() {
		return handicap;
	}

	public void setHandicap(Double handicap) {
		this.handicap = handicap;
	}

	public String getHandicapName() {
		return handicapName;
	}

	public void setHandicapName(String handicapName) {
		this.handicapName = handicapName;
	}

	public Double getBetRate() {
		return betRate;
	}

	public void setBetRate(Double betRate) {
		this.betRate = betRate;
	}

	public String getBetRateName() {
		return betRateName;
	}

	public void setBetRateName(String betRateName) {
		this.betRateName = betRateName;
	}

	public String getBetRateCode() {
		return betRateCode;
	}

	public void setBetRateCode(String betRateCode) {
		this.betRateCode = betRateCode;
	}

	public Date getRegDate() {
		return regDate;
	}

	public void setRegDate(Date regDate) {
		this.regDate = regDate;
	}

	public String getLink() {
		return link;
	}

	public void setLink(String link) {
		this.link = link;
	}

	public List<Game> getGameList() {
		return gameList;
	}

	public void setGameList(List<Game> gameList) {
		this.gameList = gameList;
	}

	public void addGameList(Game game) {
		this.gameList.add(game);
	}

	@Override
	public String toString() {
		return "Game [seq=" + seq + ", site=" + site + ", url=" + url + ", gameId=" + gameId + ", gameDate=" + gameDate + ", itemCode=" + itemCode
				+ ", itemName=" + itemName + ", nation=" + nation + ", leagueCode=" + leagueCode + ", leagueName=" + leagueName + ", homeTeamCode="
				+ homeTeamCode + ", homeTeamName=" + homeTeamName + ", awayTeamCode=" + awayTeamCode + ", awayTeamName=" + awayTeamName + ", betTarget="
				+ betTarget + ", betTime=" + betTime + ", betType=" + betType + ", betName=" + betName + ", handicap=" + handicap + ", handicapName="
				+ handicapName + ", betRate=" + betRate + ", betRateName=" + betRateName + ", betRateCode=" + betRateCode + ", regDate=" + regDate + ", link="
				+ link + "]";
	}

}
